package 方法的重载;
/*
* 1. 编写程序，定义三个重载方法并调用。方法为mOL
*    三个方法分别接受一个int参数，两个int类型参数，一个字符串参数
*    分别执行平方运算并输出结果，相乘并输出结果，输出字符串信息。
*    在主类的main()方法中分别用参数区别调用三个方法。
* 2. 定义三个重载方法max().第一个方法求两个int值中的最大值，
*                        第二个方法求两个double值中的最大值。
*                         第三个方法求三个double值的最大值
*                         分别调用三个方法
*
* java5.0新特性：
*  具体使用：
* 2.1 可变个数形参的格式，数据类型...变量名
* 2.2 当调用可变个数形参的方法时，传入的参数个数可以是: 0个、1个、2个。。。
* 2.3 可变个数形参的方法与本类中方法相同，形参不同的方法之间构成重载
* 2.4 可变个数形参的方法与本类中方法名相同，形参类型也相同的数组不构成重载。
* 2.5 可变个数形参在方法中的形参中，必须声明在末尾
* 2.6 可变个数形参在方法的形参中，最多只能声明一个可变形参
*
* */
public class OverLoadTest {

    public static void main(String[] args) {
        OverLoadTest overLoadTest = new OverLoadTest();
        double max1= overLoadTest.max(10,9);
        System.out.println(max1);
        double max2=overLoadTest.max(10.5,11.5);
        System.out.println(max2);
        double max3=overLoadTest.max(10.2,10.6,11.45);
        System.out.println(max3);
    }
    //三个重载
    public void mOL(int i){
        System.out.println(i*i);
    }
    public void mOL(int i, int j){
        System.out.println(i*j);
    }
    public void mOL(String s){
        System.out.println(s);
    }
    //第二题
    public int max(int i, int j){
        return Math.max(i, j);
    }
    public double max(double i, double j){
        return Math.max(i, j);
    }
    public double max(double i, double j, double k){
        double max;
        if(i>j){
             max=Math.max(i,k);
        }else {
             max=Math.max(j,k);
        }
        return max;
    }
//声明String类型的变量 必须要有返回值
    public  String  xintexing(String ...str){return "";}
    public String xintexing(int i,String ...str){return "";}
   //错误，声明可变形参必须添加到方法的末尾
    // public String xintexing(String ... str,int i){}

}
